网络应用模型
1 客户/服务器(C/S)模型
CS模型中客户是服务请求方,服务器是服务提供方,其工作流程是:
- 服务器处于接收请求的状态
- 客服机发出服务请求,等待接收结果
- 服务器收到请求后分析请求并处理,将结果发送给客户机
C/S模型特点:
- 网络中主机地位不平等,服务器拥有更高权限,可以对客户机进行限制
- 客户机之间不直接通信
- 可扩展性不佳,服务器支持的客户机数量有限
2 P2P模型
在P2P模型中,任意一对计算机称为对等方(Peer),直接相互通信,每个结点即作为服务器也作为客户机。
P2P模型的优点:
- 减轻服务器计算压力,消除对某个服务器的完全依赖
- 多个客户机之间直接共享文档
- 可扩展性好
- 网络健壮性强
DNS系统
DNS系统用于将域名转换为IP地址
1 层次域名空间
域名可以发分为顶级域名、二级域名、三级域名等,其中最高级别的域名写在最右边。
2 域名服务器
- 根域名服务器
根域名服务器是最高层次的域名服务器,若本地域名服务器无法解析某域名,就会向根域名服务器求助,根域名服务器确定本地服务器要找哪一个顶级域名服务器进行查询。 - 顶级域名服务器
顶级域名服务器管理该顶级域名下的所有二级域名,收到NDS请求后它可能直接给出结果或给出下一跳地址。 - 授权域名服务器(权限域名服务器)
每一个主机都必须在授权域名服务器登记,授权域名服务器总能将其管辖的主机名转换为主机的IP地址。 - 本地域名服务器
主机的DNS域名请求首先发送给本地域名服务器
3 域名解析过程
域名解析是把域名映射为IP地址(正向解析)或把IP地址映射为域名(反向解析)的过程,DNS请求以UDP数据报的形式发送。
域名解析有两种方式:
- 递归查询:对根域名负载过大,集合不使用,类似于深度遍历
- 递归和迭代相结合的查询:迭代查询类似于层次遍历
递归与迭代相结合的查询方式:
- 主机向本地域名服务器的查询采用递归查询
- 本地域名服务器向根域名服务器的查询采用迭代查询
文件传输协议FTP
1 FTP的工作原理
FTP是使用最广泛的文件传输协议,FTP屏蔽了计算机系统的异构细节,适合于异构网络中的计算机之间传送文件,FTP采用C/S模型,并使用TCP的可靠传输服务。
FTP提供以下服务:
- 不同主机系统之间的文件传输
- 以用户权限管理的方式提供用户对远程FTP服务器上文件的管理能力
- 以匿名FTP的方式提供公用文件共享的能力
FTP的工作步骤:
- 打开服务器21端口
- 等待客户进程发起连接请求
- 启动从属进程处理客户机请求,客户进程请求处理完毕则从属进程终止
- 回到等待状态,继续接收其他客户进程请求
2 控制连接与数据连接
FTP在工作时使用两个并行的FTP连接:控制连接(21端口)和数据连接(22端口)
控制连接
控制连接用来传输控制信息,如连接请求和传送请求数据连接
数据连接用来连接客户端和服务端的数据传送进程
电子邮件
1 电子邮件系统的组成结构
电子邮件是一种异步通信方式,发件人将邮件发送到收件人的邮件服务器,收件人可随时上网使用自己的邮件服务器进行读取。
电子邮件组成:
- 用户代理UA:用户与电子邮件系统的接口,通常是一个程序,如Foxmail
- 邮件服务器:发送和接收邮件
- 邮件发送协议:用于UA向邮件服务器发送邮件或邮件服务器之间发送邮件,常用SMTP
- 邮件读取协议:用于用户代理从邮件服务器读取邮件,常用POP3
邮件收发过程:
- 1 发件人用UA撰写邮件,UA用SMTP协议将邮件传送给发送方邮件服务器
- 2 发送方邮件服务器将邮件放入邮件缓冲队列
- 3 发送方的邮件服务器的STMP进程发现邮件缓存有待发送邮件,向收件方邮件服务器的STMP进程发起建立TCP连接
- 4 TCP连接建立后,STMP客户进程向远程STMP服务器进程发送邮件
- 5 接收方的邮件服务器中的STMP服务器进程收到邮件,将邮件放入收件人邮箱中
- 6 收件人调用UA,使用POP3协议读取接收方邮件服务器的邮件
2 电子邮件格式和MIME
电子邮件格式
首部:
From:abc@gmail.com
To:xyz@gmail.com
Subject:HelloWorld主体:
the content of this email
- MIME(多用途网际邮件扩充)
MIME定义传送非ASCII码的规则,用于解决SMTP只能传送ASCII码的问题。
STMP协议
STMP(简单邮件传输协议)是一种提供可靠有效的电子邮件传输的协议,STMP用TCP连接,使用25端口号。
STMP通信过程:
- 连接建立
发送方的邮件发送到发送方的邮件服务器的邮件缓存后,STMP客户端就每隔一定的时间对邮件缓存进程扫描,如发现有邮件,就使用STMP的25端口与接收方邮件服务器的SMTP服务器建立TCP连接. - 邮件传送
连接建立后,开始传送邮件 - 连接释放
邮件发送完毕后,SMTP客户发送QUIT命令,若返回信息是‘221’则表示对方SMTP同意释放TCP连接,邮件传送过程结束。
POP3协议
POP(邮局协议)是一个简单的邮件读取协议,POP3是它的第三版。POP3采用‘拉’(Pull)的通信方式,当用户读取邮件时,UA向邮件服务器发出请求,‘拉’取用户邮箱中的邮件。
POP3也使用C/S的工作方式,在传输层使用TCP,端口是110。
万维网WWW
1 万维网概念与组成结构
万维网内核部分构成:
- 统一资源定位符URL
- 超文本传输协议HTTP
- 超文本标记语言HTML
万维网工作流程:
- Web用户使用浏览器指定URL与Web服务器建立连接,并发送浏览请求
- Web服务器将URL转换为文件路径,并返回信息给Web浏览器
- 通信完成,关闭连接
2 超文本传输协议HTTP
HTTP协议规定在服务器和浏览器之间的请求和响应的格式和规则,是万维网进行可靠文件交换的重要基础。
HTTP的操作过程(以访问菜鸟教程为例)
1. 浏览器分析URL(http://www.runoob.com/html/html-intro.html)
2. 浏览器向DNS请求解析www.runoob.com
3. 域名DNS解析百度服务器的IP地址
4. 浏览器与该服务器建立TCP连接(端口号80)
5. 浏览器发送HTTP请求:GET /html/html-intro.html
6. 服务器通过HTTP响应把文件html-intro.html发送给浏览器
7. TCP连接释放
8. 浏览器将文件html-intro.html进行释放,并把Web页面显示给用户
HTTP协议的特点
1. HTTP协议是无状态协议,服务器不会记得曾经访问过的用户,通常采用Cookie来跟踪用户活动。
2. HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的,双方在交换HTTP报文之前不需要建立连接,
3. HTTP的非持久连接中,对每一个网页元素都需要建立一个TCP连接。
4. HTTP的持久连接中(HTTP/1.1支持)中,同一客户与服务器只需建立一个TCP连接
5. 持久连接分为流水线方式和非流水线方式,非流水线方式中,客户在收到一个响应前不能再发送下一个请求;流水线方式中,客户可以连续发送请求。
HTTP的报文结构
HTTP报文分为请求报文和响应报文
请求报文:
- 请求行:包含方法、URL和HTTP版本
- 首部行:
- 实体主体:通常不用
响应报文:
- 状态行:包含版本、状态码和短语
- 首部行:
- 实体主体:可能没有
HTTP请求报文中的常见方法:
方法 | 意义 |
---|---|
GET | 请求读取由URL所标志的信息 |
HEAD | 请求读取由URL所标志的信息的首部 |
POST | 给服务器添加信息 |
CONNECT | 用于代理服务器 |
小结
应用程序 | FTP数据链路 | FTP控制链路 | TENNET | SMTP | DNS | TFTP | HTTP | POP3 | SNMP |
---|---|---|---|---|---|---|---|---|---|
使用协议 | TCP | TCP | TCP | TCP | UDP | UDP | TCP | TCP | TCP |
端口 | 20 | 21 | 23 | 25 | 50 | 69 | 80 | 110 | 161 |